main() {
  // 空安全机制
  // 变量类型后添加?表示可空类型
  String? name1;
  // 访问变量时，需要添加?表示该变量可能为空
  print(name1?.length);
  // 调用方法时，需要添加?表示该方法可能为空
  name1?.toUpperCase();
  // 调用属性时，需要添加?表示该属性可能为空
  name1?.length;
  // 空判断运算符
  if (name1 != null) {
    print(name1.length);
  }

  // 1.可空类型
  String? name = '张三';
  // 2.非空断言
  print(name!);
  // 3.空合并运算符
  print(name ?? '默认值');
  // 4.空判断运算符
  name?.length;
}
